{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Time Series Segmentation through Automatic Feature Learning\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from nptdms import TdmsFile\n",
    "from sklearn import preprocessing \n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "#from sklearn.decomposition import PCA\n",
    "from sklearn.cluster import KMeans\n",
    "from collections import defaultdict\n",
    "#from sklearn.preprocessing import StandardScaler\n",
    "import matplotlib.pyplot as plt\n",
    "import seglearn as sgl\n",
    "from matplotlib.mlab import PCA\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**explain** We now consider the situation where we have a number of time series and  wish toexplore the relations between them. We \f",
    "rst look at the relation between crosscorrelation and multivariate autoregressive models and then at the cross-spectral density and coherence.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# load in data\n",
    "tdms_file = TdmsFile(\".\\\\FW-1-1\\\\AKF-FW1-1-H1021-1500.tdms\")\n",
    "#list out the groups\n",
    "groups = tdms_file.groups()  \n",
    "df = tdms_file.object('DINT').as_dataframe()\n",
    "\n",
    "#tdms_file2 = TdmsFile(\".\\\\FW-1-1\\\\AKF-FW1-1-H521-1000.tdms\")\n",
    "#df2 = tdms_file2.object('DINT').as_dataframe()\n",
    "#tdms_file3 = TdmsFile(\".\\\\FW-1-1\\\\AKF-FW1-1-H862-1000.tdms\")\n",
    "#df3 = tdms_file3.object('DINT').as_dataframe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**Explain**:  the following 3 Graphs demonstrate the normal working state and abnormal state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x206426d4898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2064274d9b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x20642703da0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "df_power = df['SupplyUnit 50U4 (Unidrive M701 Regen).Transmit PDO Mapping 8.Leistung']\n",
    "df_power.plot()\n",
    "plt.show()\n",
    "# df_power2, df_power3 they are quit similar\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "'''\n",
    "Important step is to segmentation the time series data\n",
    "we use the sliding window method\n",
    "'''\n",
    "def SW_seg(df_power):\n",
    "    # sliding window method\n",
    "    df_seg = []\n",
    "    size_df = df_power.size\n",
    "    anchor = 1 \n",
    "    width = 965\n",
    "    while((anchor+width*3) < size_df): \n",
    "        mid = df_power[anchor+width: anchor+width*3].idxmax()\n",
    "        seg = df_power[mid-width: mid+width]\n",
    "        #if (max(seg)<10):\n",
    "           #continue\n",
    "        df_seg.append(seg.values)\n",
    "        anchor = mid\n",
    "    return df_seg\n",
    "\n",
    "#df_seg= df_seg[30:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_power = df['SupplyUnit 50U4 (Unidrive M701 Regen).Transmit PDO Mapping 8.Leistung']\n",
    "df_seg = SW_seg(df_power)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x205b9ac0978>]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x205b9ac0cf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(df_seg[16])\n",
    "plt.plot(df_seg[14])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.decomposition import PCA\n",
    "\n",
    "x = np.array(df_seg)\n",
    "pca = PCA(n_components=400).fit(x)\n",
    "# inconsistencies in array construction from a list of ndarrays\n",
    "df_seg2 = pca.transform(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "\n",
    "def DTWDistance(s1, s2,w):\n",
    "    DTW={}\n",
    "    w = max(w, abs(len(s1)-len(s2)))\n",
    "    \n",
    "    for i in range(-1,len(s1)):\n",
    "        for j in range(-1,len(s2)):\n",
    "            DTW[(i, j)] = float('inf')\n",
    "    DTW[(-1, -1)] = 0\n",
    "  \n",
    "    for i in range(len(s1)):\n",
    "        for j in range(max(0, i-w), min(len(s2), i+w)):\n",
    "            dist= (s1[i]-s2[j])**2\n",
    "            DTW[(i, j)] = dist + min(DTW[(i-1, j)],DTW[(i, j-1)], DTW[(i-1, j-1)])\n",
    "            \n",
    "    return np.sqrt(DTW[len(s1)-1, len(s2)-1])\n",
    "\n",
    "def LB_Keogh(s1,s2,r):\n",
    "    LB_sum=0\n",
    "    for ind,i in enumerate(s1):\n",
    "        \n",
    "        lower_bound=min(s2[(ind-r if ind-r>=0 else 0):(ind+r)])\n",
    "        upper_bound=max(s2[(ind-r if ind-r>=0 else 0):(ind+r)])\n",
    "        \n",
    "        if i>upper_bound:\n",
    "            LB_sum=LB_sum+(i-upper_bound)**2\n",
    "        elif i<lower_bound:\n",
    "            LB_sum=LB_sum+(i-lower_bound)**2\n",
    "    \n",
    "    return np.sqrt(LB_sum)\n",
    "\n",
    "def k_means_clust(data,num_clust,num_iter,w=5):\n",
    "    centroids=random.sample(data,num_clust)\n",
    "    counter=0\n",
    "    for n in range(num_iter):\n",
    "        counter+=1\n",
    "        print(counter)\n",
    "        assignments={}\n",
    "        #assign data points to clusters\n",
    "        for ind,i in enumerate(data):\n",
    "            min_dist=float('inf')\n",
    "            closest_clust=None\n",
    "            for c_ind,j in enumerate(centroids):\n",
    "                if LB_Keogh(i,j,5) < min_dist:\n",
    "                    cur_dist=DTWDistance(i,j,w)\n",
    "                    if cur_dist < min_dist:\n",
    "                        min_dist=cur_dist\n",
    "                        closest_clust=c_ind\n",
    "            if closest_clust in assignments:\n",
    "                assignments[closest_clust].append(ind)\n",
    "            else:\n",
    "                assignments[closest_clust]=[]\n",
    "    \n",
    "        #recalculate centroids of clusters\n",
    "        for key in assignments:\n",
    "            clust_sum=[]\n",
    "            mn = len(assignments[key])\n",
    "            for k in assignments[key]:\n",
    "                clust_sum=clust_sum+data[k]\n",
    "            centroids[key]=[m/mn for m in clust_sum]\n",
    "            \n",
    "    return centroids"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,\n",
       "       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "\n",
    "kmeans = KMeans(n_clusters=2, random_state=0).fit(df_seg)\n",
    "kmeans.labels_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "'''\n",
    "The following the data is to predict and detect the anormaly data\n",
    "'''\n",
    "tdms_file2 = TdmsFile(\".\\\\FW-1-1\\\\AKF-FW1-1-H2366-2500_neues Coil.tdms\")\n",
    "df2 = tdms_file2.object('DINT').as_dataframe()\n",
    "test = SW_seg(df2['SupplyUnit 50U4 (Unidrive M701 Regen).Transmit PDO Mapping 8.Leistung'])\n",
    "predict = kmeans.predict(test)\n",
    "print(predit)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n",
       "       1, 1, 1, 1])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
